In [16]:
# Confirm CUDA is True or YOLO will run on CPU which is much slower than GPU
import torch
#print("Python:", os.sys.version)
print("Torch:", torch.__version__)
print("CUDA available:", torch.cuda.is_available())
if torch.cuda.is_available():
    print("Device:", torch.cuda.get_device_name(0))
Torch: 2.5.1+cu121
CUDA available: True
Device: NVIDIA GeForce RTX 2070 SUPER
In [17]:
# CUDA is false whenever python version > 3.10.20 had to force a new environment & kernel 
import os
from ultralytics import YOLO

print("Python version:", os.sys.version)
print("Torch version:", torch.__version__)
print("CUDA available:", torch.cuda.is_available())
if torch.cuda.is_available():
    print("CUDA device:", torch.cuda.get_device_name(0))
else:
    print("Running on CPU")
Python version: 3.10.20 | packaged by Anaconda, Inc. | (main, Jun 11 2026, 15:13:20) [MSC v.1942 64 bit (AMD64)]
Torch version: 2.5.1+cu121
CUDA available: True
CUDA device: NVIDIA GeForce RTX 2070 SUPER
In [18]:
# Check if file path contains yaml file since moving device 
# Almost forgot the file path on this device INSIDE the yaml file as well
DATASET = r"D:\Independent_Project\200_Synthetic_spills\data.yaml"

print("\nChecking dataset path...")
if os.path.exists(DATASET):
    print(" data.yaml found:", DATASET)
else:
    print("data.yaml NOT found — check the path")
    raise FileNotFoundError(DATASET)
Checking dataset path...
 data.yaml found: D:\Independent_Project\200_Synthetic_spills\data.yaml
In [19]:
# Check or load YOLO model n is for nano
print("\nLoading YOLOv11 model...")
model = YOLO("yolo11n.pt")   # Auto download if missing
print("Model loaded")
Loading YOLOv11 model...
Model loaded
In [20]:
import time

print("\nStarting YOLOv11 training...")
start_time = time.time()

results = model.train(
    data=DATASET,
    epochs=50,
    imgsz=640,
    batch=8,
    name="last_synthetic_spill_classifier",
    device=0  # force to use GPU if available (auto would otherwise reluctantly use CPU)
)

end_time = time.time()
print(f"\nTraining completed in {(end_time - start_time)/60:.2f} minutes")
Starting YOLOv11 training...
New https://pypi.org/project/ultralytics/8.4.104 available  Update with 'pip install -U ultralytics'
Ultralytics 8.4.87  Python-3.10.20 torch-2.5.1+cu121 CUDA:0 (NVIDIA GeForce RTX 2070 SUPER, 8192MiB)
engine\trainer: agnostic_nms=False, amp=True, angle=1.0, augment=False, auto_augment=randaugment, batch=8, bgr=0.0, box=7.5, cache=False, cfg=None, classes=None, close_mosaic=10, cls=0.5, cls_pw=0.0, compile=False, conf=None, copy_paste=0.0, copy_paste_mode=flip, cos_lr=False, cutmix=0.0, data=D:\Independent_Project\200_Synthetic_spills\data.yaml, degrees=0.0, deterministic=True, device=0, dfl=1.5, dis=6.0, distill_model=None, dnn=False, dropout=0.0, dynamic=False, embed=None, end2end=None, epochs=50, erasing=0.4, exist_ok=False, fliplr=0.5, flipud=0.0, format=torchscript, fraction=1.0, freeze=None, hsv_h=0.015, hsv_s=0.7, hsv_v=0.4, imgsz=640, iou=0.7, keras=False, kobj=1.0, line_width=None, lr0=0.01, lrf=0.01, mask_ratio=4, max_det=300, mixup=0.0, mode=train, model=yolo11n.pt, momentum=0.937, mosaic=1.0, multi_scale=0.0, name=last_synthetic_spill_classifier, nbs=64, nms=False, opset=None, optimize=False, optimizer=auto, overlap_mask=True, patience=100, perspective=0.0, plots=True, pose=12.0, pretrained=True, profile=False, project=None, quantize=None, rect=False, resume=False, retina_masks=False, rle=1.0, save=True, save_conf=False, save_crop=False, save_dir=C:\Users\siane\runs\detect\last_synthetic_spill_classifier, save_frames=False, save_json=False, save_period=-1, save_txt=False, scale=0.5, seed=0, shear=0.0, show=False, show_boxes=True, show_conf=True, show_labels=True, simplify=True, single_cls=False, source=None, split=val, stream_buffer=False, task=detect, time=None, tracker=tracktrack.yaml, translate=0.1, val=True, verbose=True, vid_stride=1, visualize=False, warmup_bias_lr=0.1, warmup_epochs=3.0, warmup_momentum=0.8, weight_decay=0.0005, workers=8, workspace=None
Overriding model.yaml nc=80 with nc=3

                   from  n    params  module                                       arguments                     
  0                  -1  1       464  ultralytics.nn.modules.conv.Conv             [3, 16, 3, 2]                 
  1                  -1  1      4672  ultralytics.nn.modules.conv.Conv             [16, 32, 3, 2]                
  2                  -1  1      6640  ultralytics.nn.modules.block.C3k2            [32, 64, 1, False, 0.25]      
  3                  -1  1     36992  ultralytics.nn.modules.conv.Conv             [64, 64, 3, 2]                
  4                  -1  1     26080  ultralytics.nn.modules.block.C3k2            [64, 128, 1, False, 0.25]     
  5                  -1  1    147712  ultralytics.nn.modules.conv.Conv             [128, 128, 3, 2]              
  6                  -1  1     87040  ultralytics.nn.modules.block.C3k2            [128, 128, 1, True]           
  7                  -1  1    295424  ultralytics.nn.modules.conv.Conv             [128, 256, 3, 2]              
  8                  -1  1    346112  ultralytics.nn.modules.block.C3k2            [256, 256, 1, True]           
  9                  -1  1    164608  ultralytics.nn.modules.block.SPPF            [256, 256, 5]                 
 10                  -1  1    249728  ultralytics.nn.modules.block.C2PSA           [256, 256, 1]                 
 11                  -1  1         0  torch.nn.modules.upsampling.Upsample         [None, 2, 'nearest']          
 12             [-1, 6]  1         0  ultralytics.nn.modules.conv.Concat           [1]                           
 13                  -1  1    111296  ultralytics.nn.modules.block.C3k2            [384, 128, 1, False]          
 14                  -1  1         0  torch.nn.modules.upsampling.Upsample         [None, 2, 'nearest']          
 15             [-1, 4]  1         0  ultralytics.nn.modules.conv.Concat           [1]                           
 16                  -1  1     32096  ultralytics.nn.modules.block.C3k2            [256, 64, 1, False]           
 17                  -1  1     36992  ultralytics.nn.modules.conv.Conv             [64, 64, 3, 2]                
 18            [-1, 13]  1         0  ultralytics.nn.modules.conv.Concat           [1]                           
 19                  -1  1     86720  ultralytics.nn.modules.block.C3k2            [192, 128, 1, False]          
 20                  -1  1    147712  ultralytics.nn.modules.conv.Conv             [128, 128, 3, 2]              
 21            [-1, 10]  1         0  ultralytics.nn.modules.conv.Concat           [1]                           
 22                  -1  1    378880  ultralytics.nn.modules.block.C3k2            [384, 256, 1, True]           
 23        [16, 19, 22]  1    431257  ultralytics.nn.modules.head.Detect           [3, 16, None, [64, 128, 256]] 
YOLO11n summary: 182 layers, 2,590,425 parameters, 2,590,409 gradients, 6.4 GFLOPs

Transferred 448/499 items from pretrained weights
Freezing layer 'model.23.dfl.conv.weight'
AMP: running Automatic Mixed Precision (AMP) checks...
AMP: checks passed 
train: Fast image access  (ping: 0.10.0 ms, read: 91.217.1 MB/s, size: 10.6 KB)
train: Scanning D:\Independent_Project\200_Synthetic_spills\labels\train.cache... 160 images, 53 backgrounds, 0 corrupt: 100% ━━━━━━━━━━━━ 160/160  0.0s
val: Fast image access  (ping: 0.10.0 ms, read: 106.613.3 MB/s, size: 11.3 KB)
val: Scanning D:\Independent_Project\200_Synthetic_spills\labels\val.cache... 40 images, 14 backgrounds, 0 corrupt: 100% ━━━━━━━━━━━━ 40/40  0.0s
optimizer: 'optimizer=auto' found, ignoring 'lr0=0.01' and 'momentum=0.937' and determining best 'optimizer', 'lr0' and 'momentum' automatically... 
optimizer: AdamW(lr=0.001429, momentum=0.9) with parameter groups 81 weight(decay=0.0), 88 weight(decay=0.0005), 87 bias(decay=0.0)
Plotting labels to C:\Users\siane\runs\detect\last_synthetic_spill_classifier\labels.jpg... 
Image sizes 640 train, 640 val
Using 8 dataloader workers
Logging results to C:\Users\siane\runs\detect\last_synthetic_spill_classifier
Starting training for 50 epochs...

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
       1/50      1.21G      2.788      5.577      2.517         22        640: 100% ━━━━━━━━━━━━ 20/20 4.0it/s 5.0s0.1s
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100% ━━━━━━━━━━━━ 3/3 8.9it/s 0.3s0.3s
                   all         40         46    0.00249      0.606      0.157     0.0801

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
       2/50      1.28G      1.922      4.079      1.454         21        640: 100% ━━━━━━━━━━━━ 20/20 11.3it/s 1.8s0.1s
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100% ━━━━━━━━━━━━ 3/3 14.2it/s 0.2s.3s
                   all         40         46    0.00426      0.818      0.464      0.262

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
       3/50      1.28G      1.762      3.253       1.29         23        640: 100% ━━━━━━━━━━━━ 20/20 11.5it/s 1.7s0.1s
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100% ━━━━━━━━━━━━ 3/3 14.1it/s 0.2s.3s
                   all         40         46          1      0.181      0.721      0.363

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
       4/50      1.28G       1.73      3.081      1.275         15        640: 100% ━━━━━━━━━━━━ 20/20 11.7it/s 1.7s0.2s
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100% ━━━━━━━━━━━━ 3/3 14.7it/s 0.2s.2s
                   all         40         46      0.579      0.383      0.527      0.281

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
       5/50      1.28G      1.744      2.946      1.326         14        640: 100% ━━━━━━━━━━━━ 20/20 12.1it/s 1.7s0.2s
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100% ━━━━━━━━━━━━ 3/3 14.7it/s 0.2s.2s
                   all         40         46      0.231      0.528      0.387      0.147

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
       6/50      1.28G      1.626      2.829      1.305         19        640: 100% ━━━━━━━━━━━━ 20/20 12.2it/s 1.6s0.2s
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100% ━━━━━━━━━━━━ 3/3 14.9it/s 0.2s.2s
                   all         40         46      0.803      0.269      0.493      0.227

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
       7/50      1.28G      1.611      2.636      1.301         19        640: 100% ━━━━━━━━━━━━ 20/20 12.1it/s 1.7s0.2s
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100% ━━━━━━━━━━━━ 3/3 15.3it/s 0.2s.2s
                   all         40         46      0.343       0.54      0.334      0.151

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
       8/50      1.28G      1.587      2.526      1.254         20        640: 100% ━━━━━━━━━━━━ 20/20 12.0it/s 1.7s0.2s
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100% ━━━━━━━━━━━━ 3/3 15.5it/s 0.2s.2s
                   all         40         46       0.52      0.621      0.663      0.382

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
       9/50      1.28G      1.519      2.372      1.227         13        640: 100% ━━━━━━━━━━━━ 20/20 12.0it/s 1.7s0.2s
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100% ━━━━━━━━━━━━ 3/3 15.6it/s 0.2s.2s
                   all         40         46      0.701      0.799      0.766      0.456

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
      10/50      1.28G      1.541      2.277      1.212         23        640: 100% ━━━━━━━━━━━━ 20/20 11.9it/s 1.7s0.2s
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100% ━━━━━━━━━━━━ 3/3 15.2it/s 0.2s.2s
                   all         40         46      0.695      0.682      0.763      0.474

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
      11/50      1.28G      1.399      2.099      1.164         20        640: 100% ━━━━━━━━━━━━ 20/20 11.7it/s 1.7s0.2s
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100% ━━━━━━━━━━━━ 3/3 15.5it/s 0.2s.2s
                   all         40         46      0.914       0.53      0.746      0.444

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
      12/50      1.28G      1.364      2.145      1.125         17        640: 100% ━━━━━━━━━━━━ 20/20 12.2it/s 1.6s0.2s
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100% ━━━━━━━━━━━━ 3/3 15.7it/s 0.2s.2s
                   all         40         46      0.701      0.652      0.703       0.45

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
      13/50      1.28G       1.41      2.153      1.115         26        640: 100% ━━━━━━━━━━━━ 20/20 12.1it/s 1.7s0.2s
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100% ━━━━━━━━━━━━ 3/3 15.4it/s 0.2s.2s
                   all         40         46      0.709      0.803      0.819      0.501

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
      14/50      1.28G      1.399      2.103      1.147          8        640: 100% ━━━━━━━━━━━━ 20/20 12.4it/s 1.6s0.2s
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100% ━━━━━━━━━━━━ 3/3 15.4it/s 0.2s.2s
                   all         40         46      0.692      0.773      0.814       0.52

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
      15/50      1.28G      1.354      1.969      1.156         16        640: 100% ━━━━━━━━━━━━ 20/20 12.0it/s 1.7s0.2s
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100% ━━━━━━━━━━━━ 3/3 15.3it/s 0.2s.2s
                   all         40         46      0.661      0.758      0.797      0.499

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
      16/50      1.28G       1.26      1.875       1.11         23        640: 100% ━━━━━━━━━━━━ 20/20 12.2it/s 1.6s0.2s
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100% ━━━━━━━━━━━━ 3/3 15.6it/s 0.2s.2s
                   all         40         46      0.661      0.758      0.743      0.502

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
      17/50      1.28G       1.24      1.835      1.091         18        640: 100% ━━━━━━━━━━━━ 20/20 11.9it/s 1.7s0.2s
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100% ━━━━━━━━━━━━ 3/3 15.2it/s 0.2s.2s
                   all         40         46      0.607      0.738      0.766       0.53

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
      18/50      1.28G      1.238      1.807      1.081         25        640: 100% ━━━━━━━━━━━━ 20/20 11.9it/s 1.7s0.2s
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100% ━━━━━━━━━━━━ 3/3 15.7it/s 0.2s.2s
                   all         40         46      0.756      0.712      0.812      0.568

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
      19/50      1.28G      1.178      1.666      1.065         16        640: 100% ━━━━━━━━━━━━ 20/20 11.9it/s 1.7s0.2s
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100% ━━━━━━━━━━━━ 3/3 15.3it/s 0.2s.2s
                   all         40         46      0.731      0.865      0.848      0.559

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
      20/50      1.28G      1.207      1.618      1.071         22        640: 100% ━━━━━━━━━━━━ 20/20 12.2it/s 1.6s0.2s
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100% ━━━━━━━━━━━━ 3/3 14.9it/s 0.2s.2s
                   all         40         46      0.816      0.773      0.816      0.569

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
      21/50      1.28G      1.115       1.71       1.04         21        640: 100% ━━━━━━━━━━━━ 20/20 11.8it/s 1.7s0.2s
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100% ━━━━━━━━━━━━ 3/3 15.4it/s 0.2s.2s
                   all         40         46      0.792      0.864      0.848       0.63

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
      22/50      1.28G       1.13      1.609      1.038         24        640: 100% ━━━━━━━━━━━━ 20/20 12.2it/s 1.6s0.2s
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100% ━━━━━━━━━━━━ 3/3 15.5it/s 0.2s.2s
                   all         40         46      0.859      0.848      0.881       0.63

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
      23/50      1.28G      1.117      1.567      1.044         13        640: 100% ━━━━━━━━━━━━ 20/20 12.1it/s 1.6s0.2s
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100% ━━━━━━━━━━━━ 3/3 15.5it/s 0.2s.2s
                   all         40         46      0.947      0.871      0.928      0.722

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
      24/50      1.28G      1.083       1.52      1.047          8        640: 100% ━━━━━━━━━━━━ 20/20 11.7it/s 1.7s0.1s
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100% ━━━━━━━━━━━━ 3/3 14.7it/s 0.2s.2s
                   all         40         46      0.873      0.848      0.915      0.661

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
      25/50      1.28G      1.052      1.458      1.022         17        640: 100% ━━━━━━━━━━━━ 20/20 11.8it/s 1.7s0.2s
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100% ━━━━━━━━━━━━ 3/3 15.2it/s 0.2s.2s
                   all         40         46      0.863      0.879      0.904      0.698

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
      26/50      1.28G      1.082      1.415      1.046         18        640: 100% ━━━━━━━━━━━━ 20/20 12.0it/s 1.7s0.2s
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100% ━━━━━━━━━━━━ 3/3 15.2it/s 0.2s.2s
                   all         40         46      0.897      0.866      0.924      0.654

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
      27/50      1.28G      1.092      1.436      1.028         18        640: 100% ━━━━━━━━━━━━ 20/20 12.1it/s 1.6s0.2s
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100% ━━━━━━━━━━━━ 3/3 15.1it/s 0.2s.2s
                   all         40         46      0.933      0.879      0.949      0.739

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
      28/50      1.28G      1.008      1.325      1.001         19        640: 100% ━━━━━━━━━━━━ 20/20 12.0it/s 1.7s0.2s
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100% ━━━━━━━━━━━━ 3/3 15.4it/s 0.2s.2s
                   all         40         46      0.976      0.894      0.956      0.752

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
      29/50      1.28G     0.9677      1.323      0.975         16        640: 100% ━━━━━━━━━━━━ 20/20 11.8it/s 1.7s0.2s
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100% ━━━━━━━━━━━━ 3/3 15.4it/s 0.2s.2s
                   all         40         46       0.96       0.89      0.953      0.769

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
      30/50      1.28G      0.939      1.279     0.9572          7        640: 100% ━━━━━━━━━━━━ 20/20 12.0it/s 1.7s0.2s
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100% ━━━━━━━━━━━━ 3/3 15.5it/s 0.2s.2s
                   all         40         46      0.942      0.893      0.952      0.752

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
      31/50      1.28G     0.9399      1.215     0.9503         25        640: 100% ━━━━━━━━━━━━ 20/20 11.5it/s 1.7s0.2s
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100% ━━━━━━━━━━━━ 3/3 15.0it/s 0.2s.2s
                   all         40         46       0.93      0.895      0.955      0.765

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
      32/50      1.28G     0.9558      1.201     0.9777         18        640: 100% ━━━━━━━━━━━━ 20/20 11.9it/s 1.7s0.2s
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100% ━━━━━━━━━━━━ 3/3 15.8it/s 0.2s.2s
                   all         40         46      0.965      0.932      0.966      0.778

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
      33/50      1.28G     0.9434      1.198     0.9816         24        640: 100% ━━━━━━━━━━━━ 20/20 12.0it/s 1.7s0.2s
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100% ━━━━━━━━━━━━ 3/3 15.3it/s 0.2s.2s
                   all         40         46      0.945      0.908      0.967      0.779

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
      34/50      1.28G     0.8345      1.124     0.9273         20        640: 100% ━━━━━━━━━━━━ 20/20 12.1it/s 1.7s0.2s
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100% ━━━━━━━━━━━━ 3/3 15.3it/s 0.2s.2s
                   all         40         46      0.971      0.909       0.97      0.757

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
      35/50      1.28G     0.9187      1.156     0.9672         18        640: 100% ━━━━━━━━━━━━ 20/20 11.9it/s 1.7s0.1s
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100% ━━━━━━━━━━━━ 3/3 15.2it/s 0.2s.2s
                   all         40         46       0.95      0.955      0.981      0.807

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
      36/50      1.28G     0.8534      1.087     0.9389         17        640: 100% ━━━━━━━━━━━━ 20/20 12.2it/s 1.6s0.2s
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100% ━━━━━━━━━━━━ 3/3 15.3it/s 0.2s.2s
                   all         40         46      0.945      0.939      0.983      0.785

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
      37/50      1.28G     0.8919      1.096     0.9426         14        640: 100% ━━━━━━━━━━━━ 20/20 12.0it/s 1.7s0.2s
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100% ━━━━━━━━━━━━ 3/3 15.6it/s 0.2s.2s
                   all         40         46       0.95      0.924      0.978      0.764

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
      38/50      1.28G     0.8384      1.073     0.9319         14        640: 100% ━━━━━━━━━━━━ 20/20 11.9it/s 1.7s0.2s
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100% ━━━━━━━━━━━━ 3/3 15.0it/s 0.2s.2s
                   all         40         46      0.944      0.924      0.969      0.799

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
      39/50      1.28G     0.8404      1.058     0.9524         17        640: 100% ━━━━━━━━━━━━ 20/20 11.7it/s 1.7s0.2s
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100% ━━━━━━━━━━━━ 3/3 15.2it/s 0.2s.2s
                   all         40         46      0.985      0.891      0.972      0.776

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
      40/50      1.28G      0.843      1.075     0.9236         18        640: 100% ━━━━━━━━━━━━ 20/20 12.1it/s 1.7s0.2s
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100% ━━━━━━━━━━━━ 3/3 15.8it/s 0.2s.2s
                   all         40         46      0.957      0.939      0.982      0.797
Closing dataloader mosaic

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
      41/50      1.28G     0.7749      1.082     0.9029          8        640: 100% ━━━━━━━━━━━━ 20/20 5.0it/s 4.0s<0.2s
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100% ━━━━━━━━━━━━ 3/3 15.3it/s 0.2s.2s
                   all         40         46      0.964      0.925      0.981      0.792

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
      42/50      1.28G      0.748      1.121     0.8914         10        640: 100% ━━━━━━━━━━━━ 20/20 12.0it/s 1.7s0.2s
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100% ━━━━━━━━━━━━ 3/3 15.6it/s 0.2s.2s
                   all         40         46      0.966       0.91      0.978      0.806

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
      43/50      1.28G     0.7304      1.094     0.9028         13        640: 100% ━━━━━━━━━━━━ 20/20 11.9it/s 1.7s0.2s
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100% ━━━━━━━━━━━━ 3/3 14.7it/s 0.2s.2s
                   all         40         46      0.981      0.907      0.978      0.826

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
      44/50      1.28G     0.6428      1.037     0.8731          9        640: 100% ━━━━━━━━━━━━ 20/20 12.5it/s 1.6s0.2s
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100% ━━━━━━━━━━━━ 3/3 15.5it/s 0.2s.2s
                   all         40         46      0.966      0.924      0.981      0.828

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
      45/50      1.28G     0.6432      1.017     0.8608          4        640: 100% ━━━━━━━━━━━━ 20/20 12.2it/s 1.6s0.2s
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100% ━━━━━━━━━━━━ 3/3 15.6it/s 0.2s.2s
                   all         40         46      0.931      0.939      0.975      0.869

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
      46/50      1.28G     0.6417      1.014     0.8601         10        640: 100% ━━━━━━━━━━━━ 20/20 12.2it/s 1.6s0.2s
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100% ━━━━━━━━━━━━ 3/3 15.4it/s 0.2s.2s
                   all         40         46      0.936      0.939      0.976      0.857

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
      47/50      1.28G     0.6418     0.9583     0.8663          8        640: 100% ━━━━━━━━━━━━ 20/20 12.1it/s 1.6s0.2s
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100% ━━━━━━━━━━━━ 3/3 15.4it/s 0.2s.2s
                   all         40         46      0.941      0.955      0.984      0.857

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
      48/50      1.28G     0.6105       0.98     0.8686          9        640: 100% ━━━━━━━━━━━━ 20/20 12.4it/s 1.6s0.2s
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100% ━━━━━━━━━━━━ 3/3 12.5it/s 0.2s.2s
                   all         40         46      0.961      0.951      0.983      0.848

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
      49/50      1.28G     0.6147     0.9316     0.8847          4        640: 100% ━━━━━━━━━━━━ 20/20 12.1it/s 1.7s0.2s
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100% ━━━━━━━━━━━━ 3/3 15.5it/s 0.2s.2s
                   all         40         46      0.979      0.937      0.983      0.846

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
      50/50      1.28G     0.6124      0.923     0.8493         12        640: 100% ━━━━━━━━━━━━ 20/20 12.2it/s 1.6s0.2s
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100% ━━━━━━━━━━━━ 3/3 15.0it/s 0.2s.2s
                   all         40         46       0.98      0.934      0.983      0.855

50 epochs completed in 0.035 hours.
Optimizer stripped from C:\Users\siane\runs\detect\last_synthetic_spill_classifier\weights\last.pt, 5.4MB
Optimizer stripped from C:\Users\siane\runs\detect\last_synthetic_spill_classifier\weights\best.pt, 5.4MB

Validating C:\Users\siane\runs\detect\last_synthetic_spill_classifier\weights\best.pt...
Ultralytics 8.4.87  Python-3.10.20 torch-2.5.1+cu121 CUDA:0 (NVIDIA GeForce RTX 2070 SUPER, 8192MiB)
YOLO11n summary (fused): 101 layers, 2,582,737 parameters, 0 gradients, 6.3 GFLOPs
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100% ━━━━━━━━━━━━ 3/3 9.9it/s 0.3s0.3s
                   all         40         46      0.931      0.939      0.976      0.869
             wet_spill         13         33      0.914      0.879      0.957      0.793
             dry_spill         13         13      0.949          1      0.995      0.945
Speed: 0.4ms preprocess, 1.7ms inference, 0.0ms loss, 1.0ms postprocess per image
Results saved to C:\Users\siane\runs\detect\last_synthetic_spill_classifier

Training completed in 2.20 minutes
In [ ]: